home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
- <stack>
- <name>in</name>
- <id>-1</id>
- <cardCount>1</cardCount>
- <cardID>2962</cardID>
- <listID>2113</listID>
- <cantModify><false /></cantModify>
- <cantDelete><false /></cantDelete>
- <cantAbort><false /></cantAbort>
- <cardSize>
- <width>544</width>
- <height>192</height>
- </cardSize>
- <script>-- FoneBookMaker by Robert Mason
- -- © 1993 by HyperCode Software
- -- Written primarly to convert a TouchBase exported file into a wallet-
- -- size notebook I designed.
- -- This script expects the exported file to be tab delimited fields in
- -- the following order: Last Name, First Name, Phone1, Phone2, City,
- -- State, Zip. Seven fields. If the file is arranged any other way, this
- -- script won't work.
- -- This stack requires version 2.1 of HyperCard to work properly unless
- -- you know a little HyperTalk. I used Set ItemDelimiter which is only
- -- available in version 2.1 and above. You could delete that instruction
- -- and export your files with comma delimited fields. This will work,
- -- but any fields with commas in them will create confusion which is why
- -- I used tab-delimiting.
-
- on openstack
- get the version
- if it < 2.1 then
- answer "This stack requires HyperCard version 2.1 or greater " &¬
- "to work properly."
- end if
- makeMenu
- end openstack
-
- on domenu which
- if which is "Help" then
- show cd fld "Instructions"
- else
- pass domenu
- end if
- end domenu
-
- on makeMenu
- set the name of menuItem 1 of menu "Apple" to "About FoneBookMaker"
- set menuMsg of menuItem "About FoneBookMaker" of menu "Apple" to Info
- end makeMenu
-
- on info
- answer "FoneBookMaker 1.0 by Robert Mason" & return & " © 1993 by HyperCode Software"
- end info
-
- on opencard
- put the number of this cd & " of " & the number of cds into fld "page"
- end opencard
-
- on printFone Kind,Size
- if Kind = "Wallet" then
- printWallet Size
- else
- printBook Size
- end if
- end printFone
-
- on PrintWallet Size -- varible "size" allows for different formats later
- set cursor to watch
- repeat with i = 1 to the number of cds -- 4 wallet pages per page
- open report printing with template "Wallet"
- print card i
- close printing
- end repeat
- go first cd
- end PrintWallet
-
- on printBook Size
- open report printing with template "NoteBook"
- print all cards
- close printing
- end printBook
-
-
- on makeFoneBook Kind,Size
- answer file "Which file?"
- if the result is "cancel" then exit makeFoneBook
- put it into filename
- -- put "TouchBase.Export" into filename
- repeat 40
- put "." after Spacer -- create a dotted line for empty fields
- end repeat
- open file filename
- repeat until it is empty -- read until everything is read from file
- read from file filename for 30000
- put return & it after TheList
- end repeat
- close file filename
- put Kind & "," & Size into fld BookType -- to notify print function
- repeat while line 1 of TheList is empty
- delete line 1 of TheList
- end repeat
- set itemDelimiter to tab
- repeat with i = 1 to the number of lines of TheList
- set cursor to busy
- put line i of TheList into WorkingLine
- put item 1 of WorkingLine into Temp
- if Temp is not empty then put i && Temp
- if Temp is not empty then put ", " after Temp
- put item 2 of WorkingLine after Temp
- put length(Temp) into HB
- if HB ‚â• 24 then
- repeat until length(Temp) = 23
- delete last char of Temp
- end repeat
- put "." after Temp
- end if
- put char 1 to (24 - HB) of Spacer after Temp
- put Temp into LineTemp --------------------------- Lname, fname
- put item 3 of WorkingLine & " " & item 4 of WorkingLine into Temp
- put length(Temp) into HB
- if HB ‚â• 36 then
- repeat until length(Temp) = 35
- delete last char of Temp
- end repeat
- put "." after Temp
- end if
- put char 1 to (36 - HB) of Spacer after Temp
- put Temp after LineTemp ------------------------- phone #
- put item 5 of WorkingLine into Temp
- put length(Temp) into HB
- if HB ‚â• 34 then
- repeat until length(Temp) = 33
- delete last char of Temp
- end repeat
- put "." after Temp
- end if
- put char 1 to (34 - HB) of Spacer after Temp
- put Temp after LineTemp ------------------------- address
- if item 6 of WorkingLine is not empty then
- put item 6 of WorkingLine & ", " & item 7 of WorkingLine & ¬
- " " & item 8 of WorkingLine into Temp
- else
- if item 7 of WorkingLine is not empty then
- put item 7 of WorkingLine & " " & item 8 of WorkingLine into Temp
- else
- put item 8 of WorkingLine into Temp
- end if
- end if
- put length(Temp) into HB
- if HB ‚â• 32 then
- repeat until length(Temp) = 32
- delete last char of Temp
- end repeat
- end if
- if Temp is empty then
- put ".............................." into Temp -- if no city,state,zip
- end if
- put Temp after LineTemp ------------------------- City,State,Zip
- put LineTemp & return after FoneBookTemp -- put Temp & return after VapFone
- end repeat
- -------------------------- what kind?
- if Kind = "Wallet" then
- put FormatWalletBook(FoneBookTemp,Size) into FoneBookTemp
- else
- put FormatFoneBook(FoneBookTemp,Size) into FoneBookTemp
- end if
- BuildPreview FoneBookTemp,Size
- go first cd
- hide msg
- beep 2
- end MakeFoneBook
-
- on BuildPreview FoneBookTemp,Size
- global CutHere
- put "Building preview windows..."
- repeat with i = 1 to the number of cds - 1
- go last cd
- domenu "delete card"
- end repeat
- put empty into fld 1 -- clear first field
- if Size = 9 then
- set the textsize of fld "FoneText" to 9
- set the textstyle of fld "FoneText" to condense
- else
- set the textsize of fld "FoneText" to 7
- set the textstyle of fld "FoneText" to plain
- end if
-
- repeat with i = 1 to the number of lines of FoneBookTemp
- set cursor to busy
- if "§" is not in line i of FoneBookTemp then --end of 4 page section
- -- put in by formatFoneBook function, tells program to start a
- -- new page
- put line i of FoneBookTemp & return after FldTemp
- else
- put FldTemp after fld 1
- put empty into FldTemp
- domenu "new card"
- if Kind = "Wallet" then put CutHere & return into fld 1
- end if
- end repeat
- put FldTemp after fld 1
- end BuildPreview
-
- function formatWalletBook FoneBookTemp,Size
- global CutHere -- so it can be used during MakeFoneBook too
- put empty into CutHere
- put "Formatting wallet pages..."
- if Size = 7 then
- put 20 into NumOfLines
- else
- put 12 into NumOfLines
- end if
-
-
- ---------------------- make the header and line cut lines -----------
- get the date
- put it into fld "date"
- if length(it) ≠ 8 then
- repeat until length(it) = 8
- put "." after it
- end repeat
- end if
- put it into WalPageHeader
- repeat 9
- put "....." after WalPageHeader
- end repeat
- put " Index" after WalPageHeader
- repeat 6
- put "--------------------" after CutHere
- end repeat
- put "-----|" after CutHere
- ---------------------------------------------------------------------
-
- put 1 into Lnum -- line counter
- put 0 into PBnum -- wallet page counter: PageBlock
- repeat
- set cursor to busy
- put CutHere & return after FormatTemp
- repeat NumOfLines -- 12 or 20 corresponding to 7pt or 9pt in Size
- if line Lnum of FoneBookTemp is empty then exit repeat -- empty
- put return & line Lnum of FoneBookTemp after PageBlock
- add 1 to Lnum
- end repeat
- if line 1 of PageBlock is empty then delete first line of PageBlock -- empty line
- add 1 to PBnum
- if the number of lines of PageBlock = NumOfLines then -- 21
- put "(" & char 1 of line 1 of PageBlock & "-" & char 1 of line NumOfLines of ¬ -- 21
- PageBlock & ")" into PageIndex
- put PageIndex into last word of WalPageHeader
- put WalPageHeader & return after FormatTemp
- put PageBlock & return after FormatTemp
- else
- delete last line of PageBlock
- put "(" & char 1 of line 1 of PageBlock & "-" & char 1 of last line of ¬
- PageBlock & ")" into PageIndex
- put PageIndex into last word of WalPageHeader
- put WalPageHeader & return after FormatTemp
- put the number of lines of PageBlock into PBL
- repeat NumOfLines - PBL -- 21
- put return after PageBlock
- end repeat
- -- put CutHere into last line of PageBlock
- put CutHere after PageBlock
- put PageBlock after FormatTemp
- exit repeat
- end if
- put empty into PageBlock
- if PBnum = 4 then -- four wallet pages max to one printed page
- put 0 into PBnum
- put CutHere after FormatTemp -- cut line for last page entry
- -- put CutHere into last line of FormatTemp
- put return & "§" after FormatTemp -- mark it for MakeFoneBook
- end if
- end repeat
- return FormatTemp
- end formatWalletBook
-
- function formatFoneBook FoneBookTemp,Size
- put "Formatting Pages..."
- put the date into fld "Date"
- put 1 into Num
- if Size = 7 then
- put 98 into LineLimit
- put 98 into LIncrement
- else
- put 62 into LineLimit
- put 62 into LIncrement
- end if
- repeat
- set cursor to busy
- put line Num to LineLimit of FoneBookTemp into Block
- if the number of lines of Block < LIncrement then
- put return & Block after Temp
- exit repeat
- end if
- put Block & return & "§" after Temp
- add LIncrement to Num
- add LIncrement to LineLimit
- end repeat
- return Temp
- end formatFoneBook</script>
- <background id="2582" file="background_2582.xml" name="" />
- <card id="2962" file="card_2962.xml" marked="false" name="" owner="2582" />
- </stack>
-